شناخت نخستین
Gradle یک سیستم مدیر بیلد کردن پروژه ها است که مبنی بر Groovy طراحی اپلیکیشن در مشهد میباشد.
و به صورت خاص برای ایجاد کرد پروژه های بر پایه ی جاوا پیاده سازی گردیده است.
گردل یک ابزار تشکیل داد اعلانی و همگی منظوره میباشد. که می اقتدار بیان کرد ترکیبی از دو ابزار Ant و Maven اعلامی میباشد به هم پا خصوصیت های بیشتر.
میتوانیم از Groovy یا این که Kotlin برای تایپ کردن یک اسکریپت بیلد برای ارائه آیین نامهها به Gradle استعمال کنیم.
در این شرکت قرار میباشد از گویش کاتلین برای تایپ کردن اسکریپت های ساختمان به کار گیری کنیم.
قابل ذکر میباشد که بگوییم، Gradle یک ابزار بیلد گویش JVM میباشد، البته از ابزار بیلد ، درج شده با C++ ، C و … نیز پناه می نماید.
چرا ما به ابزار Build Automation نیاز داریم ؟
شایع ترین فرآیندها در ایجاد کرد هر نرم افزار دربرگیرنده : کامپایل کردن سورس کد ، بسته بندی خروجی کامپایل گردیده به فرمت فشرده گردیده مانند apk (اندروید)، JAR، TAR، ZIP و … میباشد.
در کنار این، ممکن میباشد شغل های دیگری مانند اجرای اپ را نیز اعمال دهیم.
تجزیه و بررسی کد ایستا یا این که اجرای آزمایشات روی سورس کد و..
درحال حاضر فکر کنید که هیچ ابزاری برای خودکارسازی این پروسه وجود نداشته باشد.
و ما می بایست تک تک این اقدامات را به طور دستی اعمال دهیم ، که اشتباهات سیستم دستی به تفصیل پایین است :
خسته کننده بودن و وقت گیر بودن فرآیند ی اجرا این فرایندها.
قابلیت و امکان بروز نادرست
بیلد اتومات به ما اذن میدهد تا فرایند دستی مرتبط با مراحل ایجاد کرد را خود کار کنیم.
این سبب صرفه جویی در هزینه و فرصت صرف گردیده در فرایند دستی میشود.
غرض مهم ابزار بیلد خود کار این میباشد که هر توشه که اسکریپت بلید را اعمال میکنیم asset های قابل تکرار تولید کنیم.
همان گونه که در حال حاضر التفات ابزارهای بلید را میدانیم، بیایید داده ها بیشتری را در امر آنان گستردن دهیم.
اشکال ابزارهای بیلد
دو نوع ابزار بیلد وجود داراست، ابزارهای بلید دستوری و ابزارهای اعلامی.
یک ابزار بیلد ضروری به سیستم میگوید که چه کاری را چه گونه اجرا دهد.
این بدان معناست که برای سیستم بیلد ضروری (دستوری)، ما می بایست کل پروسه مرتبط با روند بیلد را مشخص و معلوم کنیم.
هم پا با معلوم کردن هر مرحله، بایستی اطلاعاتی در امر روش اجرای آن فرآیند نیز ارائه نماییم.( Ant مثال ای از ابزار تشکیل داد ضروری میباشد.)
ولی برای ابزارهای اعلامی، تنها بایستی معین کنیم که میخواهیم به چه چیزی برسیم و سیستم روش جاری ساختن آن را معین خواهد کرد.
( Maven مثال ای از ابزار تشکیل داد اعلانی میباشد.) اینک، ممکن میباشد از خویش بپرسید که Gradle جز کدام مجموعه از این ابزارها جای دارد.
خصوصیت های گردل
Incremental Build :
Gradle Build از یکسری تسک درست شده میباشد، و task ممکن میباشد بعضا از ورودی ها را بگیرد و بعضا از خروجی ها را ایجاد نماید.
Gradle نظارت می نماید که آیا ورودی، خروجی یا این که اجرای یک تسک از واپسین فراخوانی عملیات بیلد عوض شده میباشد یا این که نه.
در غیر این شکل، تسک آپ تو دیت در لحاظ گرفته میگردد و اعمال نمیشود کهاین قضیه باعث به کامل شدن سریعتر بیلد میگردد.
Parallel Execution :
Gradle قابلیت اجرای برابر تسک ها را مهیا می نماید کهاین روند به کاهش مجال بیلد بسیار یاری می نماید.
Build Output Caching :
Gradle میتواند خروجی های بیلد را کش نماید.
یکی مزیت های این ذخیره سازی این میباشد که ما قادر خواهیم بود از خروجی ذخیره گردیده برای ایجاد کرد عمل دیگری که متعلق به آن میباشد، مجدد به کار گیری کنیم.
این پروسه از فعالیت پرهزینه تجدید بنا آنان خودداری می نماید.
Task Exclusion :
ما اکثر زمان ها نیاز به اجرای بعضا تسک ها بسته به بعضی حالت داریم.
و زمانی تسکی را حذف میکنیم، مجموع تسک هایی کهاین تسک به آن ها متعلق میباشد نیز به صورت اتوماتیک حذف می گردند.
همینطور می توانیم اسم تسکی را که می خواهیم با به کار گیری از مورد -x یا این که -exclude-task از خط دستور حذف کنیم، بیان کنیم.
Version Conflict Resolution :
گاهی در یک بیلد به طور همزمان تعدادی پروژه، ممکن میباشد موقعیتی پیش بیاید که بیش تر از یک پروژه تعلق مشترک داشته باشد.
دراینصورت، Gradle با استعمال از جدیدترین ورژن درخواستی، dependency conflicts را حل می نماید.
ما همینطور خواهیم توانست این مراحل را سفارشی کنیم.
Transitive Dependencies :
یکیاز مزایای مهم استعمال از سیستم رئیس dependency ، رئیس transitive dependencies میباشد.
Gradle از بارگیری و transitive dependencies جانبداری می نماید.
Publishing Multiple Artifacts :
ما اکثر اوقات نیاز داریم که بعد از اتمام فرایند ی بیلد، گزارش های بیلد را در بعضی از منابع منتشر کنیم.
Gradle میتواند یکسری artifacts مانند apk (اندروید)، JAR، TAR، ZIP و … تولید و منتشر نماید.
Customisable Logging :
اکران لاگ ها برای فهم و شعور آنچه در طول اجرای بیلد واقعه می افتد بسیار اصلی میباشد و همینطور به انواع زدایی و یافتن اشتباهات امداد می نماید.
Gradle از سطح ها گوناگون گزارش مانند debug(-d) و .. هواخواهی می نماید.
Extensibility :
گسترش پذیری یکی خصوصیت های فوق العاده ی Gradle میباشد.
ما به راحتی میتوانیم Gradle را برای ارائه اشکال تسک ها یا این که سبک های بیلد خویش پیشرفت دهیم.
شناخت نخستین
Gradle یک سیستم مدیر بیلد کردن پروژه ها است که مبنی بر Groovy طراحی اپلیکیشن در مشهد میباشد.
و به صورت خاص برای ایجاد کرد پروژه های بر پایه ی جاوا پیاده سازی گردیده است.
گردل یک ابزار تشکیل داد اعلانی و همگی منظوره میباشد. که می اقتدار بیان کرد ترکیبی از دو ابزار Ant و Maven اعلامی میباشد به هم پا خصوصیت های بیشتر.
میتوانیم از Groovy یا این که Kotlin برای تایپ کردن یک اسکریپت بیلد برای ارائه آیین نامهها به Gradle استعمال کنیم.
در این شرکت قرار میباشد از گویش کاتلین برای تایپ کردن اسکریپت های ساختمان به کار گیری کنیم.
قابل ذکر میباشد که بگوییم، Gradle یک ابزار بیلد گویش JVM میباشد، البته از ابزار بیلد ، درج شده با C++ ، C و … نیز پناه می نماید.
چرا ما به ابزار Build Automation نیاز داریم ؟
شایع ترین فرآیندها در ایجاد کرد هر نرم افزار دربرگیرنده : کامپایل کردن سورس کد ، بسته بندی خروجی کامپایل گردیده به فرمت فشرده گردیده مانند apk (اندروید)، JAR، TAR، ZIP و … میباشد.
در کنار این، ممکن میباشد شغل های دیگری مانند اجرای اپ را نیز اعمال دهیم.
تجزیه و بررسی کد ایستا یا این که اجرای آزمایشات روی سورس کد و..
درحال حاضر فکر کنید که هیچ ابزاری برای خودکارسازی این پروسه وجود نداشته باشد.
و ما می بایست تک تک این اقدامات را به طور دستی اعمال دهیم ، که اشتباهات سیستم دستی به تفصیل پایین است :
خسته کننده بودن و وقت گیر بودن فرآیند ی اجرا این فرایندها.
قابلیت و امکان بروز نادرست
بیلد اتومات به ما اذن میدهد تا فرایند دستی مرتبط با مراحل ایجاد کرد را خود کار کنیم.
این سبب صرفه جویی در هزینه و فرصت صرف گردیده در فرایند دستی میشود.
غرض مهم ابزار بیلد خود کار این میباشد که هر توشه که اسکریپت بلید را اعمال میکنیم asset های قابل تکرار تولید کنیم.
همان گونه که در حال حاضر التفات ابزارهای بلید را میدانیم، بیایید داده ها بیشتری را در امر آنان گستردن دهیم.
اشکال ابزارهای بیلد
دو نوع ابزار بیلد وجود داراست، ابزارهای بلید دستوری و ابزارهای اعلامی.
یک ابزار بیلد ضروری به سیستم میگوید که چه کاری را چه گونه اجرا دهد.
این بدان معناست که برای سیستم بیلد ضروری (دستوری)، ما می بایست کل پروسه مرتبط با روند بیلد را مشخص و معلوم کنیم.
هم پا با معلوم کردن هر مرحله، بایستی اطلاعاتی در امر روش اجرای آن فرآیند نیز ارائه نماییم.( Ant مثال ای از ابزار تشکیل داد ضروری میباشد.)
ولی برای ابزارهای اعلامی، تنها بایستی معین کنیم که میخواهیم به چه چیزی برسیم و سیستم روش جاری ساختن آن را معین خواهد کرد.
( Maven مثال ای از ابزار تشکیل داد اعلانی میباشد.) اینک، ممکن میباشد از خویش بپرسید که Gradle جز کدام مجموعه از این ابزارها جای دارد.
خصوصیت های گردل
Incremental Build :
Gradle Build از یکسری تسک درست شده میباشد، و task ممکن میباشد بعضا از ورودی ها را بگیرد و بعضا از خروجی ها را ایجاد نماید.
Gradle نظارت می نماید که آیا ورودی، خروجی یا این که اجرای یک تسک از واپسین فراخوانی عملیات بیلد عوض شده میباشد یا این که نه.
در غیر این شکل، تسک آپ تو دیت در لحاظ گرفته میگردد و اعمال نمیشود کهاین قضیه باعث به کامل شدن سریعتر بیلد میگردد.
Parallel Execution :
Gradle قابلیت اجرای برابر تسک ها را مهیا می نماید کهاین روند به کاهش مجال بیلد بسیار یاری می نماید.
Build Output Caching :
Gradle میتواند خروجی های بیلد را کش نماید.
یکی مزیت های این ذخیره سازی این میباشد که ما قادر خواهیم بود از خروجی ذخیره گردیده برای ایجاد کرد عمل دیگری که متعلق به آن میباشد، مجدد به کار گیری کنیم.
این پروسه از فعالیت پرهزینه تجدید بنا آنان خودداری می نماید.
Task Exclusion :
ما اکثر زمان ها نیاز به اجرای بعضا تسک ها بسته به بعضی حالت داریم.
و زمانی تسکی را حذف میکنیم، مجموع تسک هایی کهاین تسک به آن ها متعلق میباشد نیز به صورت اتوماتیک حذف می گردند.
همینطور می توانیم اسم تسکی را که می خواهیم با به کار گیری از مورد -x یا این که -exclude-task از خط دستور حذف کنیم، بیان کنیم.
Version Conflict Resolution :
گاهی در یک بیلد به طور همزمان تعدادی پروژه، ممکن میباشد موقعیتی پیش بیاید که بیش تر از یک پروژه تعلق مشترک داشته باشد.
دراینصورت، Gradle با استعمال از جدیدترین ورژن درخواستی، dependency conflicts را حل می نماید.
ما همینطور خواهیم توانست این مراحل را سفارشی کنیم.
Transitive Dependencies :
یکیاز مزایای مهم استعمال از سیستم رئیس dependency ، رئیس transitive dependencies میباشد.
Gradle از بارگیری و transitive dependencies جانبداری می نماید.
Publishing Multiple Artifacts :
ما اکثر اوقات نیاز داریم که بعد از اتمام فرایند ی بیلد، گزارش های بیلد را در بعضی از منابع منتشر کنیم.
Gradle میتواند یکسری artifacts مانند apk (اندروید)، JAR، TAR، ZIP و … تولید و منتشر نماید.
Customisable Logging :
اکران لاگ ها برای فهم و شعور آنچه در طول اجرای بیلد واقعه می افتد بسیار اصلی میباشد و همینطور به انواع زدایی و یافتن اشتباهات امداد می نماید.
Gradle از سطح ها گوناگون گزارش مانند debug(-d) و .. هواخواهی می نماید.
Extensibility :
گسترش پذیری یکی خصوصیت های فوق العاده ی Gradle میباشد.
ما به راحتی میتوانیم Gradle را برای ارائه اشکال تسک ها یا این که سبک های بیلد خویش پیشرفت دهیم.

معایب سبک ایده پردازی و فروش آن و درآمد از اندروید